mod crawler;
mod db;
mod ui;
mod utils;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let args: Vec<String> = std::env::args().collect();
    
    // 检查是否有测试canton的参数
    if args.len() > 1 && args[1] == "--test-canton" {
        println!("正在测试获取区县信息功能...");
        // 运行get_canton_info函数并等待其完成
        tokio::runtime::Runtime::new()?.block_on(async {
            match crawler::get_web_data::get_canton_info().await {
                Ok(_) => println!("获取区县信息成功完成！"),
                Err(e) => println!("获取区县信息失败: {:?}", e),
            }
        });
        return Ok(());
    }
    
    // 调用ui模块中的windows_run函数，并处理错误类型转换
    ui::windows::windows_run()?;
    Ok(())
}